/* This file is licensed under the not a license license
	1. You may not comply
	2. Goodbye
*/

// Importing this is very important
import QtQuick 5.15
// Muddling the waters!
import QtQuick.Models 3.14 as muddle
// Importing that is important too
import Z
import That
import This // THIS IS VERY IMPORTANT!
import Y
import X.Z
import X.Y
import A.LLOHA
import A.B.B.A

// This comment is related to Item
Item {

	// This to id
	// Also id. (line 2)
	// This is the third id
	// fourth id comment
	id: foo
	x: 3 // Very cool

	// This to enum
	enum Foo {
		A = 3, // This is A
		B, // This is B
		C = 4, // This is C
		D  // This is D
	}

	// This one to aFunc()
	function aFunc() {
		var x = 3;
		return x;
	}

	property bool some_bool: false
	// This comment is related to the property animation
	PropertyAnimation on x {
		id: foo2
		x: 3
		y: x + 3
	}

	// Orphan comment

	// Another orphan

	// More orphans

	property variant some_array_literal: [30, 20, Math["PI"], [4, 3, 2], "foo", 0.3]
	property bool something_computed: function (x) {
		const PI = 3, DAYS_PER_YEAR = 365.25;
		var x = 3 + 2;
		x["bla"] = 50;

		// This is an orphan inside something_computed

		// Are these getting duplicated?

		// This one to var few!
		var few = new WhatEver();
		x += Math.sin(3);
		x--;
		--x;
		x++;
		++x;
		for (var x = 0; x < 100; x++) {
			x++;
			console.log("Foo");
		}
		for (var x in [3, 2, 1]) {
			y++;
			console.log("Bar");
		}
		while (true) {
			console.log("Wee");
		}
		with (foo) {
			bar;
			x += 5;
		} // This is related to with!
		x3: do {
			console.log("Hello");
		} while (3 == 0)
		try {
			dangerous();
		} catch (e) {
			console.log(e);
		} finally {
			console.log("What else?");
		}
		switch (x) {
		case 0:
			x = 1;
			break;
		case 1:
			x = 5;
			break;
		case 4:
			x = 100;
			break;
		}
		if (x == 50) {
			console.log("true");
		} else if (x == 50) {
			console.log("other thing");
		} else {
			console.log("false");
		}
		if (x == 50) {
			console.log("true");
		} else if (x == 50) {
			console.log("other thing");
			x--;
		} else {
			console.log("false");
		}

		// Another orphan inside something_computed

		return "foobar";
	}()

	default property bool some_default_bool: 500 % 5 !== 0 // some_default_bool

	myFavouriteThings: [
		// This is an orphan

		// This is a cool text
		Text {},
		// This is a cool rectangle
		Rectangle {}
	]

	// some_read_only_bool
	readonly property bool some_read_only_bool: Math.sin(3) && (aFunc()[30] + 5) | 2 != 0

	signal say(string name, bool caps)

	Text {
		text: "Bla"
		signal boo(int count, int times, real duration)
		required property string batman
	}

	Component.onCompleted: console.log("Foo!")
}
